home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
pc
/
LOGIC Apple II 5.25" Library - DOS Part 2
/
DOS036.dsk
/
HGR DEMO!.bas
< prev
next >
Wrap
BASIC Source File
|
2012-02-16
|
5KB
|
89 lines
0 CALL -936: DIM A(8)
1 X = 0
2 VTAB 10: PRINT TAB( 10);"APPLESOFT II ": PRINT : PRINT TAB( 10);"HIGH RESOLUTION DEMONSTRATION"
3 PRINT : PRINT TAB( 10);"BY R. KEATING"
4 PRINT : PRINT "1 CARDOID": PRINT "2 HEX": PRINT "3 VERTEX
5 PRINT "4 LINES": PRINT "5 INTERNAL SPIRAL": PRINT "6 EXTERNAL SPIRAL": PRINT "7 GARDEN"
6 PRINT "0 FINISH"
10 CALL -384: PRINT : PRINT : PRINT : PRINT " HIT ANY KEY TO RETURN ": CALL -380
20 GET X$:W = VAL(X$): IF W = 0 THEN 22000
30 ON W GOTO 1000,2000,3000,4000,5000,6000,7000,10000,10000
1000 N = 2:PI = 3.1415926535
1010 HGR : POKE -16302,0
1020 X = RND(45) *3 +1: HCOLOR= X: IF N = 6 THEN N = 2
1030 FOR A = 0 TO 360 STEP 3:V = A *PI/180:X = 139 * COS(V) +139:Y = 95 * SIN(V) +95: HPLOT X,Y:U = N *A +N:U = U *PI/180
1040 J = 139 * COS(U) +139:K = 95 * SIN(U) +95: HPLOT TO J,K: NEXT A
1050 N = N +1: IF PEEK( -16384) >127 THEN GOTO 10000
1060 HGR : POKE -16302,0: GOTO 1020
2000 M = 1.04719755:T = 0:X = 279 * RND(10):Y = 191 * RND(10):R = 30: HGR : POKE -16302,0
2010 E = 200 * RND(10) +20: HCOLOR= 3 * RND(10) +1
2015 IF R = 30 THEN HCOLOR= 3
2020 FOR I = 1 TO E:T = T +( -1) ^( INT( RND(10) *2)) *M:A = X +R * SIN(T):B = Y +R * COS(T): IF A >279 OR B >191 OR A <0 OR B <0 THEN 2060
2030 HPLOT X,Y TO A,B:X = A:Y = B
2040 NEXT I:R = R/2: IF PEEK( -16384) >127 THEN 10000
2045 IF R <5 THEN 2000
2050 GOTO 2010
2060 T = T +( -1) ^( INT( RND(10) *2)) *M *2:A = X +R * SIN(T):B = Y +R * COS(T): IF A >279 OR B >191 OR A <0 OR B <0 THEN 2060
2070 GOTO 2030
3000 IN = 2.3561937: HGR : POKE -16302,0
3001 R = 85 * RND(10) +10
3002 HCOLOR= 4 * RND(10)
3010 X = 7:M = 0:N = 0
3020 FOR J = 1 TO 7: HPLOT R * SIN(M) +140,R * COS(N) +95:A = M:B = N
3030 FOR I = 0 TO X:A = A +IN:B = B +IN: HPLOT R * SIN(M) +140,R * COS(N) +95 TO R * SIN(A) +140,R * COS(B) +95: NEXT I
3040 M = M +IN:N = N +IN:X = X -1: NEXT J
3050 IF PEEK( -16384) >127 THEN 10000
3060 GOTO 3001
4000 I = 0
4005 HGR : POKE -16302,0
4010 FOR I = 1 TO 4:A(I) = 280 * RND(10): NEXT I: FOR I = 5 TO 8:A(I) = 192 * RND(10): NEXT I:Z = 2 * INT(10 * RND(10)) +10
4020 O = 0:P = Z:S = (Z -1)/2: HCOLOR= 3 * RND(10) +1:M = Z/2:N = M:X = 1
4030 FOR J = 1 TO 2
4040 FOR I = 0 TO S: HPLOT (O *A(3) +P *A(1))/Z,(O *A(5) +P *A(7))/Z TO (M *A(2) +N *A(4))/Z,(M *A(6) +N *A(8))/Z
4050 HPLOT (P *A(3) +O *A(1))/Z,(P *A(5) +O *A(7))/Z TO (N *A(2) +M *A(4))/Z,(N *A(6) +M *A(8))/Z
4060 O = O +1:P = P -1:M = M +X:N = N -X: NEXT I:X = -1:S = S -1: NEXT J
4070 IF PEEK( -16384) >127 THEN 10000
4080 FOR I = 1 TO 800: NEXT I: GOTO 4005
5000 A = 50 * RND(10):B = RND(10) *35:C = 279 -A:D = B:E = C:F = 191 -B:G = A:H = F
5001 Z = INT(35 * RND(10)):Z = Z +2:N = Z -1
5010 HCOLOR= 3 * RND(10) +1: HGR : POKE -16302,0
5020 HPLOT A,B: HPLOT TO C,D: HPLOT TO E,F: HPLOT TO G,H: HPLOT TO A,B:A = (N *A +G)/Z:B = (N *B +H)/Z:G = (N *G +E)/Z:H = (N *H +F)/Z:E = (N *E +C)/Z:F = (N *F +D)/Z:C = (N *C +A)/Z:D = (N *D +B)/Z
5030 IF ABS(A -E) + ABS(B -F) <2 THEN 5000
5040 IF PEEK( -16384) >127 THEN 10000
5050 GOTO 5020
6000 A = 279 * RND(10):B = 191 * RND(10):C = 279 * RND(10):X = 191 * RND(10):D = 279 * RND(10):Y = 191 * RND(10)
6006 T = INT(4 * RND(10) +1)
6008 S = INT(2 * RND(10) +1)
6009 Z = INT( RND(10) *40):Z = Z +2:N = Z -1:Z = Z +S
6010 HCOLOR= 3 * RND(10) +1: HGR : POKE -16302,0
6020 ON T GOTO 6050,6060,6070,6080
6030 A = (N *A +C)/Z:B = (N *B +X)/Z:C = (N *C +E)/Z:X = (N *X +Y)/Z:E = (E *N +A)/Z:Y = (N *Y +B)/Z
6040 IF ABS(A -C) <.1 THEN 6000
6041 IF PEEK( -16384) >127 THEN 10000
6045 GOTO 6020
6050 HPLOT A,B: HPLOT TO C,X: HPLOT TO E,Y: HPLOT TO A,B: GOTO 6030
6060 HPLOT 279 -A,B: HPLOT TO 279 -C,X: HPLOT TO 279 -E,Y: HPLOT TO 279 -A,B: GOTO 6030
6070 HPLOT 279 -A,191 -B: HPLOT TO 279 -C,191 -X: HPLOT TO 279 -E,191 -Y: HPLOT TO 279 -A,191 -B: GOTO 6030
6080 HPLOT A,191 -B: HPLOT TO C,191 -X: HPLOT TO E,191 -Y: HPLOT TO A,191 -B: GOTO 6030
7000 X = 100 * RND(10) +75:Y = 50 * RND(10) +30:P = 10 * RND(10) +5:E = 1: HGR : POKE -16302,0: HCOLOR= 3
7010 HPLOT X,191 TO X,Y
7020 A = Y +(191 -Y) * RND(10):R = (80 * RND(10) +20)/E:T = ( -1) ^( INT( RND(10) *2)) *(1.047 * RND(10) +.17)
7030 M = R * SIN(T) +X:N = A -R * COS(T): IF M <20 OR N <20 OR M >259 OR N >171 THEN 7020
7040 HPLOT X,A TO M,N:P = P -1:R = (10 * RND(10) +10)/E: HCOLOR= 2 * RND(10) +1: FOR I = .3 TO 6.3 STEP .3
7050 HPLOT M,N TO R * SIN(I) +M,R * COS(I) +N +1: NEXT I: IF PEEK( -16384) >127 THEN 10000
7060 HCOLOR= 3: IF P <0 THEN 7070
7065 GOTO 7020
7070 IF E = 2 OR E = 3 THEN 7080
7075 X = 50 * RND(10) +199:Y = 50 * RND(10) +80:E = 2:P = 10 * RND(10) +5: HPLOT X,191 TO X,Y: GOTO 7020
7080 IF E = 3 THEN 7000
7085 X = 50 * RND(10) +30:Y = 91 * RND(10) +80:E = 3:P = 5 * RND(10) +5: HPLOT X,191 TO X,Y: GOTO 7020
8000 GOTO 1
9000 GOTO 1
10000 TEXT : CALL -936: PRINT "<CTRL-G>": POKE -16368,0: GOTO 1
22000 D$ = "<CTRL-D>"
22001 TEXT : GR : TEXT : CALL -936
22010 PRINT D$;"RUN MENU"
22020 PRINT D$;"RUN MENU"
32767 REM COPYRIGHT R.J.KEATING
32768 REM 18 AUGUST 1978
32769 REM SYDNEY, AUSTRALIA